const path = require('path')

const relativelyOutputDir = 'dist'
const relativelyInputDir = 'src'
const devServerPort = 3030
const outputDir = path.resolve(__dirname, relativelyOutputDir)
const inputDir = path.resolve(__dirname, relativelyInputDir)

module.exports = {
  // 客户端端口
  devServerPort,
  // 服务端端口
  rendererServerPort: 8090,
  // 文件输出出口相对路口
  relativelyOutputDir,
  // 文件输出出口
  outputDir,
  // 文件输入入口相对路径
  relativelyInputDir,
  // 文件输入入口
  inputDir,
  // 客户端文件输入入口
  clientInputDir: path.resolve(inputDir, './entry-client.js'),
  // 服务端文件输入入口
  serveInputDir: path.resolve(inputDir, './entry-server.js'),
  // 服务端渲染的bundle文件名
  serveBundleFileName: 'vue-ssr-server-bundle.json',

  // 本地client执行后的服务地址
  rendererPublicPath: `http://localhost:${devServerPort}`,

  // 模板文件
  templateFileName: path.resolve(inputDir, 'template.html'),

  // 客户端输出文件夹
  clientOutpueDir: path.resolve(outputDir, './client'),
  // 服务端输出文件夹
  serveOutpueDir: path.resolve(outputDir, './serve'),
  // 客户端Manifest文件名
  clientManifestFileName: 'vue-ssr-client-manifest.json',
  // 是否是客户端
  isClient: process.env.BUILD_TARGET === 'CLIENT',
  // 是否是服务段渲染
  isServer: process.env.BUILD_TARGET === 'SERVER',
  // 是否是vue热更新的client
  isRenderer: process.env.BUILD_TARGET === 'RENDERER',
  // 是否是开发环境
  isDev: process.env.NODE_ENV === 'development',
  // 是否是生产环境
  isPro: process.env.NODE_ENV === 'production',

  // 开发环境检查使用本地还是rendererPublicPath间隔
  devCheckInterval: 1 * 60 * 1000
}
